-- @Author: 作者QQ381990860
-- @Date:   2021-10-14 22:46:38
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:59:01

local 场景类_分解 = class(窗口逻辑)
local tp,zts,zts1
local floor = math.floor
local tonumber = tonumber
local tostring = tostring
local insert = table.insert

function 场景类_分解:初始化(根)
	self.ID = 112
	self.x = 300+(全局游戏宽度-800)/2
	self.y = 100
	self.xx = 0
	self.yy = 0
	self.注释 = "分解"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	local 按钮 = 根._按钮
	local 自适应 = 根._自适应
	self.资源组 = {
		[1] = 自适应.创建(0,1,270,381,3,9),
		[2] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),
		[3] = 按钮.创建(自适应.创建(12,4,55,20,1,3),0,0,4,true,true,"分解"),
		[4] = 按钮.创建(自适应.创建(12,4,55,20,1,3),0,0,4,true,true,"取消"),
		[5] = 自适应.创建(3,1,80,18,1,3),
	}
	for n=2,4 do
	   self.资源组[n]:绑定窗口_(112)
	end
	self.物品 = {}
	local 格子 = 根._物品格子
	for i=1,20 do
		self.物品[i] = 格子(0,0,i,"分解")
	end

	self.窗口时间 = 0
	tp = 根
	zts = tp.字体表.普通字体
	zts1 = tp.字体表.描边字体
end

function 场景类_分解:打开(数据)
	if self.可视 then
		self.道具 = nil
		self.可视 = false
		if self.上一次 ~= nil then
			self.物品[self.上一次].确定 = false
		end
		self.上一次 = nil

	else
		if  self.x > 全局游戏宽度 then
		   self.x = 300+(全局游戏宽度-800)/2
		end
		for i=1,20 do
		self.物品[i]:置物品(数据[i])
		end
		self.数据=数据
		if self.上一次 ~= nil then
			self.物品[self.上一次].确定 = false
		end
		self.上一次 = nil
		insert(tp.窗口_,self)
	    tp.运行时间 = tp.运行时间 + 1
	  	self.窗口时间 = tp.运行时间
	    self.可视 = true
	end
end

function 场景类_分解:显示(dt,x,y)
	self.焦点 = false
	self.资源组[2]:更新(x,y)
	self.资源组[3]:更新(x,y,self.道具 ~= nil )
	self.资源组[4]:更新(x,y)
	if self.鼠标 then
		if self.资源组[2]:事件判断() then
			self:打开()
		elseif self.资源组[3]:事件判断() then
           客户端:发送数据(self.上一次, 205, 13,"包裹")
           self:打开()
		elseif self.资源组[4]:事件判断() then
			self:打开()
		end
	end
	self.资源组[1]:显示(self.x,self.y)
	self.资源组[2]:显示(self.x+self.资源组[1].宽度-20,self.y+3)
	tp.窗口标题背景_:显示(self.x+self.资源组[1].宽度/2-73,self.y)
	zts1:显示(self.x+self.资源组[1].宽度/2-15,self.y+1,"分解")


	self.资源组[3]:显示(self.x+65,self.y+352,true)
	self.资源组[4]:显示(self.x+170,self.y+352,true)
	tp.物品格子背景_:显示(self.x+9,self.y+35)
	zts:置颜色(0xFFFFFFFF):显示(self.x+50,self.y+250,"需要分解符")
	zts:置颜色(0xFFFFFFFF):显示(self.x+58,self.y+275,"需要体力")
	zts:置颜色(0xFFFFFFFF):显示(self.x+50,self.y+300,"当前分解符")
	zts:置颜色(0xFFFFFFFF):显示(self.x+58,self.y+325,"当前体力")

	for i=0,3 do
		self.资源组[5]:显示(self.x+130,self.y+249+i*25)
	end

	local xx = 0
	local yy = 0
	for i=1,20 do
		local jx = xx * 51 + 10
		local jy = yy * 51 + 33
		self.物品[i]:置坐标(self.x + jx,self.y + jy)
		self.物品[i]:显示(dt,x,y,self.鼠标,{"武器","衣服","项链","头盔","鞋子","腰带"})
		if self.物品[i].焦点 and self.物品[i].物品 ~= nil then
			tp.提示:道具行囊(x,y,self.物品[i].物品)
		  if self.物品[i].事件 and (self.物品[i].物品.类型 == "武器" or self.物品[i].物品.类型 == "头盔"or self.物品[i].物品.类型 == "衣服"or self.物品[i].物品.类型 == "项链" or self.物品[i].物品.类型 == "鞋子" or self.物品[i].物品.类型 == "腰带" or self.物品[i].物品.类型 == "衣服" )  and self.鼠标 then
				if self.上一次 ~= nil and self.上一次 ~= 0 then
					self.物品[self.上一次].确定 = false
				end
				self.物品[i].确定 = true
				self.道具 = self.物品[i].物品
				self.上一次 = i

		end
	end
		xx = xx + 1
		if xx == 5 then
			xx = 0
			yy = yy + 1
		end
	end

	if self.道具 ~= nil then
		zts:置颜色(-16777216):显示(self.x + 135,self.y + 252,self:计算(self.道具.等级,"sl"))
      zts:置颜色(-16777216):显示(self.x + 135,self.y + 277,self:计算(self.道具.等级,"tl"))
	end

   zts:置颜色(0xFFFFFFFF):显示(self.x + 135,self.y + 302,self.数据.分解符)
   zts:置颜色(0xFFFFFFFF):显示(self.x + 135,self.y + 327,self.数据.体力)
end

function 场景类_分解:计算(等级,lx)
   local fj = {sl= math.floor(等级/10*4),tl= math.floor(等级/10*7)}
	return fj[lx]
end


return 场景类_分解